package com.demo01;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

public class Demo06 {
    public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException {
        //需求：通过我们今天讲的反射，尝试着往这个list里面加入一个String元素
        //泛型只是提供编译时期的检查 在编译过后 就会将泛型擦除
        List<Integer> list = new ArrayList<Integer>();
        //添加元素到集合中
        list.add(36);
        list.add(new Integer("12345"));
        list.add(123);
//        list.add("12345678");
        //通过反射技术 实现添加任意类型的元素
        //1.获取到这个类的class对象
        Class c = Class.forName("java.util.ArrayList");
        //2.找到add()方法
        Method method = c.getMethod("add", Object.class);
        //3.执行add()
        method.invoke(list, "你好");
        System.out.println(list);
    }
}
